home *** CD-ROM | disk | FTP | other *** search
/ The 640 MEG Shareware Studio 2 / The 640 Meg Shareware Studio CD-ROM Volume II (Data Express)(1993).ISO / comm / cbip_kit.zip / STARTER.KIT < prev   
Internet Message Format  |  1992-02-18  |  40KB

  1. Path: nlbbs!nstar!zaphod.mps.ohio-state.edu!qt.cs.utexas.edu!cs.utexas.edu!uunet!ulowell!cs.ulowell.edu!oneill
  2. From: cbip@cs.ulowell.edu (CBIP Moderator)
  3. Newsgroups: comp.binaries.ibm.pc
  4. Subject: v17inf7: starter.kit, CBIP Starter's Kit (part 01/01)
  5. Keywords: starter, booz, uudecode, source
  6. Message-ID: <1992Feb14.212204.29476@ulowell.ulowell.edu>
  7. Date: Fri, 14 Feb 1992 21:22:04 GMT
  8. Sender: usenet@ulowell.ulowell.edu (News manager - ulowell)
  9. Followup-To: comp.binaries.ibm.pc.d
  10. Organization: University of Massachusetts at Lowell Computer Science
  11. Approved: oneill@cs.ulowell.edu
  12. Originator: oneill@cs.ulowell.edu
  13.  
  14. Checksum:  291836341  (Verify with "brik -cv")
  15. Submitted-by: oneill@cs.ulowell.edu
  16. Posting-number: Volume 17, Issue inf7
  17. Archive-name: admin/starter.kit
  18.  
  19. [Date of last change 12/26/91 Release 1.8]
  20.  
  21.                          UseNet CBIP Starter's Kit
  22.  
  23.    This kit contains what you will need to begin downloading files from
  24. comp.binaries.ibm.pc. This kit contains:
  25.  
  26.         1) Instructions
  27.         2) BASIC source to create UUDECODE.COM
  28.         3) DEBUG script to create UUDECODE.COM
  29.         4) C source for UUDECODE
  30.         5) Documentation for UUDECODE
  31.         6) BOOZ 2.0, ZOO extractor, in uuencoded form
  32.  
  33. You will need:
  34.  
  35.         1) GW-BASIC or DEBUG (from MS-DOS)
  36.         2) File editor
  37.  
  38. What to do:
  39.  
  40. You will need to split this file into 5 parts. Each part is separated by a
  41. line stating "---CUT HERE---" and a short description. Using a text editor,
  42. separate the parts for the BASIC and DEBUG sources and the BOOZ extractor.
  43. If you have a GW-BASIC interpreter, run the UUDECODE.BAS program, which will
  44. create UUDECODE.COM. If you have the MS-DOS DEBUG program, create
  45. UUDECODE.COM by saving the DEBUG script below as UUDECODE.DBG and feeding it
  46. to DEBUG by giving the command
  47.  
  48.         DEBUG < UUDECODE.DBG
  49.  
  50. This will create UUDECODE.COM. You can alternately compile UUDECODE.C.
  51.  
  52. Then use the UUDECODE program to decode BOOZ into executable form by saving
  53. the BOOZ.UUE file and saying
  54.  
  55.         UUDECODE BOOZ.UUE
  56.  
  57. This will create BOOZ.EXE, which can be used to extract ZOO archives by
  58. specifying
  59.  
  60.         BOOZ X FILENAME
  61.  
  62. NOTE: This file is for the purpose of ease of use on any system. Although
  63. other formats (such as shar files) are easier to handle, they present a
  64. problem on the portability between systems.
  65.  
  66. ---CUT HERE--- Save as UUDECODE.BAS and run under GW-BASIC
  67. 100 REM - BASIC PROGRAM TO CREATE UUDECODE.COM v2.0 (a fast uudecoder)
  68. 105 REM UUDECODE.BAS created by w8sdz@WSMR-SIMTEL20.ARMY.MIL (Keith Petersen)
  69. 110 CLS:PRINT "Creating UUDECODE.COM.  See UUDECODE.DOC for instructions."
  70. 115 OPEN "UUDECODE.COM" AS #1 LEN = 1
  71. 120 FIELD #1, 1 AS A$: CHECKSUM#=0
  72. 130 FOR I = 1 TO    73
  73. 140  LINESUM#=0: LOCATE 2,3: PRINT "Countdown: "    73 - I ;
  74. 150  FOR J = 1 TO  16: READ BYTE$: CHECKSUM#=CHECKSUM#+VAL("&H"+BYTE$)
  75. 160   LINESUM#=LINESUM#+VAL("&H"+BYTE$)
  76. 170   IF (BYTE < 256) THEN LSET A$=CHR$(VAL("&H"+BYTE$)): PUT #1
  77. 180  NEXT J
  78. 190  READ LINETOT$: LINECHECK# = VAL("&H"+LINETOT$)
  79. 200  IF LINECHECK# = LINESUM# THEN GOTO 220
  80. 210  LOCATE 4,2: PRINT "Error in line #"  ;  260 +  10 * I: GOTO 260
  81. 220 NEXT I
  82. 230 CLOSE: READ FILETOT$ : FILECHECK# = VAL(FILETOT$)
  83. 240 IF CHECKSUM# <> FILECHECK# THEN GOTO 260
  84. 250 PRINT: PRINT "UUDECODE.COM created successfully": SYSTEM
  85. 260 PRINT: PRINT "UUDECODE.COM is not valid!": END
  86. 270 DATA EB,5F,90,49,6E,70,75,74,20,66,69,6C,65,20,65,72,  6A1
  87. 280 DATA 72,6F,72,2E,4F,75,74,70,75,74,20,66,69,6C,65,20,  5F2
  88. 290 DATA 65,72,72,6F,72,2E,73,74,61,72,74,20,6E,6F,74,20,  617
  89. 300 DATA 66,6F,75,6E,64,2E,45,6E,64,20,6E,6F,74,20,66,6F,  5C7
  90. 310 DATA 75,6E,64,2E,20,65,78,69,73,74,73,2E,20,41,62,6F,  595
  91. 320 DATA 72,74,69,6E,67,21, 0, 0, 0, 0,AC, 3,AC, 3,5C, 3,  402
  92. 330 DATA  0,E8,FA, 1,E8,54, 1,BF,5C, 3,E8,D1, 0,AD,3D,62,  743
  93. 340 DATA 65,75,F4,AD,3D,67,69,75,EE,AD,3D,6E,20,75,E8,BF,  87F
  94. 350 DATA 5C, 3,B4,20,AC,3A,C4,76,FB,AC,3A,C4,75,FB,AC,3A,  84E
  95. 360 DATA C4,76,FB,3A,C4,74, 4,AA,AC,EB,F8,BA,5C, 3,33,C9,  8F9
  96. 370 DATA 88, D,80,3E,60, 1,FF,74,1E,B4,4E,CD,21,3C, 2,74,  5E7
  97. 380 DATA 16,3C,12,74,12,8B,CF,2B,CA,E8,2F, 1,BA,44, 1,B9,  609
  98. 390 DATA 12, 0,B0, 5,E9,16, 1,B4,3C,CD,21,73, 3,E9,E3, 0,  5E7
  99. 400 DATA A3,58, 1,BF,5C, 3,E8,65, 0,AC, A,C0,74,48,BB,20,  674
  100. 410 DATA 20,2A,C3, A,C0,74,3F,32,E4,8B,E8,B9, 4, 6,AC,8A,  70C
  101. 420 DATA E0,AC,8A,D0,2B,C3,D0,E4,D0,E4,D2,E8, A,C4,AA,4D,  ABB
  102. 430 DATA 74,D4,8A,E2,AC,8A,D0,2B,C3,D2,E4,D0,E8,D0,E8, A,  AD8
  103. 440 DATA C4,AA,4D,74,C1,8A,E2,AC,2B,C3,8A,CD,D2,E4, A,C4,  9D1
  104. 450 DATA AA,4D,75,C7,EB,B0,E8,15, 0,AD,3D,65,6E,75, 5,AC,  7AE
  105. 460 DATA 3C,64,74, 3,E8,AE, 0,E8,61, 0,B4,4C,CD,21,8B,36,  6A5
  106. 470 DATA 5A, 1,89,3E,5E, 1,BD,50, 0,BF, C, 3,33,C0,AB,B9,  5B3
  107. 480 DATA 27, 0,B8,20,20,F3,AB,BF, C, 3,3B,36,5C, 1,72, 6,  4D1
  108. 490 DATA E8,38, 0,E8,55, 0,AC,3C,60,75, 4,B0,20,EB, 8,3C,  61D
  109. 500 DATA  D,74,1B,3C, A,74,18,AA,4D,75,DF,3B,36,5C, 1,72,  4F9
  110. 510 DATA  3,E8,37, 0,AC,3C, A,75,F2,BF,5C, 3,EB,B4,46,89,  707
  111. 520 DATA 36,5A, 1,8B,3E,5E, 1,BE, C, 3,C3,BA,5C, 3,8B,CA,  5B7
  112. 530 DATA 87, E,5E, 1,2B,CA,76, A,8B,1E,58, 1,B4,40,CD,21,  54D
  113. 540 DATA 72, 1,C3,BA,14, 1,B9,12, 0,EB,22,BA,AC, 3,B9,54,  653
  114. 550 DATA FA,8B,1E,56, 1,B4,3F,CD,21,72, C, B,C0,74, 8,8B,  62B
  115. 560 DATA F2, 3,C6,A3,5C, 1,C3,BA, 3, 1,B9,11, 0,50,E8, A,  648
  116. 570 DATA  0,58,E9,55,FF,BA,36, 1,B9, E, 0,52,51,BA,3E, 3,  5EB
  117. 580 DATA B9, 2, 0,90,E8, C, 0,59,5A,E8, 7, 0,BA,3E, 3,B9,  595
  118. 590 DATA  2, 0,90,BB, 2, 0,B4,40,CD,21,C3,90, D, A,54,68,  557
  119. 600 DATA 69,73,20,50,72,6F,67,72,61,6D,20,52,65,71,75,69,  5FA
  120. 610 DATA 72,65,73,20,44,4F,53,20,56,65,72,73,69,6F,6E,20,  576
  121. 620 DATA 32,2E,30,20,6F,72,20,68,69,67,68,65,72,2E, D, A,  46D
  122. 630 DATA 24, D, A,49,6E,70,75,74,20,70,61,74,68,2F,66,69,  516
  123. 640 DATA 6C,65,3A,20,20,4E,6F,20,61,63,74,69,6F,6E,B4,30,  58A
  124. 650 DATA CD,21,3C, 2,73, C,BA, C, 3,B4, 9,CD,21,B8, 1,4C,  524
  125. 660 DATA CD,21,E8,46, 0,73,33,BA,68, 4,B9,1B, 1,90,E8,6A,  69F
  126. 670 DATA FF,BA,41, 3,B9,14, 0,BB, 2, 0,B4,40,CD,21,BF,7F,  6A7
  127. 680 DATA  0,C6, 5,50,8B,D7,B4, A,CD,21,E8,1E, 0,73, B,BA,  667
  128. 690 DATA 55, 3,B9, 9, 0,B0, 1,E9,33,FF,BA, 4, 4,B8, 0,3D,  59D
  129. 700 DATA CD,21,72, 4,A3,56, 1,C3,E9,1C,FF,BE,80, 0,BF, 4,  726
  130. 710 DATA  4,FC,AC, A,C0,74,2F,B4,20,AC,3A,C4,76,FB,3A,C4,  806
  131. 720 DATA 76,26,3C,2F,74, 4,3C,2D,75,18,8B,D0,8B, 4,3C,3F,  4DA
  132. 730 DATA 74,1B,24,5F,3D,4F,20,8B,C2,75, 7,F6,16,60, 1,46,  53A
  133. 740 DATA 46,AC,AA,AC,EB,D8,F9,C3,C6, 5, 0,F8,C3,BA,68, 4,  973
  134. 750 DATA E9,66,FF,90,55,55,44,45,43,4F,44,45,20,76,32,2E,  622
  135. 760 DATA 30, 0,4F,72,69,67,69,6E,61,6C,6C,79,20,62,79,20,  565
  136. 770 DATA 54,68,65,6F,64,6F,72,65,20,41,2E,20,4B,61,6C,64,  565
  137. 780 DATA 69,73, 0,54,68,6F,72,6F,75,67,68,6C,79,20,72,65,  608
  138. 790 DATA 68,61,63,6B,65,64,20,62,79,20,44,61,76,69,64,20,  583
  139. 800 DATA 50,20,4B,69,72,73,63,68,62,61,75,6D,2C,20,54,6F,  588
  140. 810 DATA 61,64,20,48,61,6C,6C, 0,55,55,44,45,43,4F,44,45,  4B4
  141. 820 DATA 20,5B,2D,3F,5D,5B,2D,6F,5D,20,5B,64,3A,5D,5B,5C,  4C5
  142. 830 DATA 70,61,74,68,5C,5D,62,69,6E,61,72,79,2E,55,55,45,  608
  143. 840 DATA 20,3C,52,45,54,55,52,4E,3E, D, A,55,73,69,6E,67,  497
  144. 850 DATA 20,74,68,65,20,66,69,6C,65,6E,61,6D,65,2E,74,79,  5DD
  145. 860 DATA 70,20,69,6E,20,74,68,65,20,22,62,65,67,69,6E,22,  531
  146. 870 DATA 20,6C,69,6E,65,2C, D, A,70,72,6F,64,75,63,65,73,  570
  147. 880 DATA 20,75,75,64,65,63,6F,64,65,64,20,66,69,6C,65,6E,  600
  148. 890 DATA 61,6D,65,2E,74,79,70,20,6F,6E,20,63,75,72,72,65,  5FC
  149. 900 DATA 6E,74,20,64,72,69,76,65,5C,70,61,74,68, D, A,28,  564
  150. 910 DATA 70,72,6F,76,69,64,69,6E,67,20,66,69,6C,65,6E,61,  661
  151. 920 DATA 6D,65,2E,74,79,70,20,64,6F,65,73,6E,27,74,20,61,  5B2
  152. 930 DATA 6C,72,65,61,64,79,20,65,78,69,73,74,29,2E, D, A,  53C
  153. 940 DATA 2D,6F,20,73,77,69,74,63,68,20,66,6F,72,63,65,73,  5F0
  154. 950 DATA 20,6F,76,65,72,77,72,69,74,65,20,6F,66,20,65,78,  5F9
  155. 960 DATA 69,73,74,69,6E,67,20,66,69,6C,65,6E,61,6D,65,2E,  61D
  156. 970 DATA 74,79,70, D, A,2D,3F,20,70,72,6F,64,75,63,65,73,  565
  157. 980 DATA 20,74,68,69,73,20,68,65,6C,70,20,6D,65,73,73,61,  5DA
  158. 990 DATA 67,65,2E, D, A,24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  135
  159. 1000 DATA 114365
  160. ---CUT HERE--- Save as UUDECODE.DBG and feed to DEBUG
  161. e 0100
  162. EB 5F 90 49 6E 70 75 74 20 66 69 6C 65 20 65 72
  163. e 0110
  164. 72 6F 72 2E 4F 75 74 70 75 74 20 66 69 6C 65 20
  165. e 0120
  166. 65 72 72 6F 72 2E 73 74 61 72 74 20 6E 6F 74 20
  167. e 0130
  168. 66 6F 75 6E 64 2E 45 6E 64 20 6E 6F 74 20 66 6F
  169. e 0140
  170. 75 6E 64 2E 20 65 78 69 73 74 73 2E 20 41 62 6F
  171. e 0150
  172. 72 74 69 6E 67 21 00 00 00 00 AC 03 AC 03 5C 03
  173. e 0160
  174. 00 E8 FA 01 E8 54 01 BF 5C 03 E8 D1 00 AD 3D 62
  175. e 0170
  176. 65 75 F4 AD 3D 67 69 75 EE AD 3D 6E 20 75 E8 BF
  177. e 0180
  178. 5C 03 B4 20 AC 3A C4 76 FB AC 3A C4 75 FB AC 3A
  179. e 0190
  180. C4 76 FB 3A C4 74 04 AA AC EB F8 BA 5C 03 33 C9
  181. e 01A0
  182. 88 0D 80 3E 60 01 FF 74 1E B4 4E CD 21 3C 02 74
  183. e 01B0
  184. 16 3C 12 74 12 8B CF 2B CA E8 2F 01 BA 44 01 B9
  185. e 01C0
  186. 12 00 B0 05 E9 16 01 B4 3C CD 21 73 03 E9 E3 00
  187. e 01D0
  188. A3 58 01 BF 5C 03 E8 65 00 AC 0A C0 74 48 BB 20
  189. e 01E0
  190. 20 2A C3 0A C0 74 3F 32 E4 8B E8 B9 04 06 AC 8A
  191. e 01F0
  192. E0 AC 8A D0 2B C3 D0 E4 D0 E4 D2 E8 0A C4 AA 4D
  193. e 0200
  194. 74 D4 8A E2 AC 8A D0 2B C3 D2 E4 D0 E8 D0 E8 0A
  195. e 0210
  196. C4 AA 4D 74 C1 8A E2 AC 2B C3 8A CD D2 E4 0A C4
  197. e 0220
  198. AA 4D 75 C7 EB B0 E8 15 00 AD 3D 65 6E 75 05 AC
  199. e 0230
  200. 3C 64 74 03 E8 AE 00 E8 61 00 B4 4C CD 21 8B 36
  201. e 0240
  202. 5A 01 89 3E 5E 01 BD 50 00 BF 0C 03 33 C0 AB B9
  203. e 0250
  204. 27 00 B8 20 20 F3 AB BF 0C 03 3B 36 5C 01 72 06
  205. e 0260
  206. E8 38 00 E8 55 00 AC 3C 60 75 04 B0 20 EB 08 3C
  207. e 0270
  208. 0D 74 1B 3C 0A 74 18 AA 4D 75 DF 3B 36 5C 01 72
  209. e 0280
  210. 03 E8 37 00 AC 3C 0A 75 F2 BF 5C 03 EB B4 46 89
  211. e 0290
  212. 36 5A 01 8B 3E 5E 01 BE 0C 03 C3 BA 5C 03 8B CA
  213. e 02A0
  214. 87 0E 5E 01 2B CA 76 0A 8B 1E 58 01 B4 40 CD 21
  215. e 02B0
  216. 72 01 C3 BA 14 01 B9 12 00 EB 22 BA AC 03 B9 54
  217. e 02C0
  218. FA 8B 1E 56 01 B4 3F CD 21 72 0C 0B C0 74 08 8B
  219. e 02D0
  220. F2 03 C6 A3 5C 01 C3 BA 03 01 B9 11 00 50 E8 0A
  221. e 02E0
  222. 00 58 E9 55 FF BA 36 01 B9 0E 00 52 51 BA 3E 03
  223. e 02F0
  224. B9 02 00 90 E8 0C 00 59 5A E8 07 00 BA 3E 03 B9
  225. e 0300
  226. 02 00 90 BB 02 00 B4 40 CD 21 C3 90 0D 0A 54 68
  227. e 0310
  228. 69 73 20 50 72 6F 67 72 61 6D 20 52 65 71 75 69
  229. e 0320
  230. 72 65 73 20 44 4F 53 20 56 65 72 73 69 6F 6E 20
  231. e 0330
  232. 32 2E 30 20 6F 72 20 68 69 67 68 65 72 2E 0D 0A
  233. e 0340
  234. 24 0D 0A 49 6E 70 75 74 20 70 61 74 68 2F 66 69
  235. e 0350
  236. 6C 65 3A 20 20 4E 6F 20 61 63 74 69 6F 6E B4 30
  237. e 0360
  238. CD 21 3C 02 73 0C BA 0C 03 B4 09 CD 21 B8 01 4C
  239. e 0370
  240. CD 21 E8 46 00 73 33 BA 68 04 B9 1B 01 90 E8 6A
  241. e 0380
  242. FF BA 41 03 B9 14 00 BB 02 00 B4 40 CD 21 BF 7F
  243. e 0390
  244. 00 C6 05 50 8B D7 B4 0A CD 21 E8 1E 00 73 0B BA
  245. e 03A0
  246. 55 03 B9 09 00 B0 01 E9 33 FF BA 04 04 B8 00 3D
  247. e 03B0
  248. CD 21 72 04 A3 56 01 C3 E9 1C FF BE 80 00 BF 04
  249. e 03C0
  250. 04 FC AC 0A C0 74 2F B4 20 AC 3A C4 76 FB 3A C4
  251. e 03D0
  252. 76 26 3C 2F 74 04 3C 2D 75 18 8B D0 8B 04 3C 3F
  253. e 03E0
  254. 74 1B 24 5F 3D 4F 20 8B C2 75 07 F6 16 60 01 46
  255. e 03F0
  256. 46 AC AA AC EB D8 F9 C3 C6 05 00 F8 C3 BA 68 04
  257. e 0400
  258. E9 66 FF 90 55 55 44 45 43 4F 44 45 20 76 32 2E
  259. e 0410
  260. 30 00 4F 72 69 67 69 6E 61 6C 6C 79 20 62 79 20
  261. e 0420
  262. 54 68 65 6F 64 6F 72 65 20 41 2E 20 4B 61 6C 64
  263. e 0430
  264. 69 73 00 54 68 6F 72 6F 75 67 68 6C 79 20 72 65
  265. e 0440
  266. 68 61 63 6B 65 64 20 62 79 20 44 61 76 69 64 20
  267. e 0450
  268. 50 20 4B 69 72 73 63 68 62 61 75 6D 2C 20 54 6F
  269. e 0460
  270. 61 64 20 48 61 6C 6C 00 55 55 44 45 43 4F 44 45
  271. e 0470
  272. 20 5B 2D 3F 5D 5B 2D 6F 5D 20 5B 64 3A 5D 5B 5C
  273. e 0480
  274. 70 61 74 68 5C 5D 62 69 6E 61 72 79 2E 55 55 45
  275. e 0490
  276. 20 3C 52 45 54 55 52 4E 3E 0D 0A 55 73 69 6E 67
  277. e 04A0
  278. 20 74 68 65 20 66 69 6C 65 6E 61 6D 65 2E 74 79
  279. e 04B0
  280. 70 20 69 6E 20 74 68 65 20 22 62 65 67 69 6E 22
  281. e 04C0
  282. 20 6C 69 6E 65 2C 0D 0A 70 72 6F 64 75 63 65 73
  283. e 04D0
  284. 20 75 75 64 65 63 6F 64 65 64 20 66 69 6C 65 6E
  285. e 04E0
  286. 61 6D 65 2E 74 79 70 20 6F 6E 20 63 75 72 72 65
  287. e 04F0
  288. 6E 74 20 64 72 69 76 65 5C 70 61 74 68 0D 0A 28
  289. e 0500
  290. 70 72 6F 76 69 64 69 6E 67 20 66 69 6C 65 6E 61
  291. e 0510
  292. 6D 65 2E 74 79 70 20 64 6F 65 73 6E 27 74 20 61
  293. e 0520
  294. 6C 72 65 61 64 79 20 65 78 69 73 74 29 2E 0D 0A
  295. e 0530
  296. 2D 6F 20 73 77 69 74 63 68 20 66 6F 72 63 65 73
  297. e 0540
  298. 20 6F 76 65 72 77 72 69 74 65 20 6F 66 20 65 78
  299. e 0550
  300. 69 73 74 69 6E 67 20 66 69 6C 65 6E 61 6D 65 2E
  301. e 0560
  302. 74 79 70 0D 0A 2D 3F 20 70 72 6F 64 75 63 65 73
  303. e 0570
  304. 20 74 68 69 73 20 68 65 6C 70 20 6D 65 73 73 61
  305. e 0580
  306. 67 65 2E 0D 0A 24
  307.  
  308. r cx
  309. 0486
  310. n uudecode.com
  311. w
  312. q
  313. ---CUT HERE--- Save as UUDECODE.C and compile
  314. /*
  315.  * Copyright (c) 1983 Regents of the University of California.
  316.  * All rights reserved.
  317.  *
  318.  * Redistribution and use in source and binary forms are permitted
  319.  * provided that the above copyright notice and this paragraph are
  320.  * duplicated in all such forms and that any documentation,
  321.  * advertising materials, and other materials related to such
  322.  * distribution and use acknowledge that the software was developed
  323.  * by the University of California, Berkeley.  The name of the
  324.  * University may not be used to endorse or promote products derived
  325.  * from this software without specific prior written permission.
  326.  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
  327.  * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
  328.  * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  329.  */
  330.  
  331. /*
  332.  * Modified 12 April 1990 by Mark Adler for use on MSDOS systems with
  333.  * Microsoft C and Turbo C.
  334.  *
  335.  * Modifed 13 February 1991 by Greg Roelofs for use on VMS systems.  As
  336.  * with the MS-DOS version, the setting of the file mode has been disabled.
  337.  * Compile and link normally (but note that the shared-image link option
  338.  * produces a binary only 6 blocks long, as opposed to the 137-block one
  339.  * produced by an ordinary link).  To set up the VMS symbol to run the
  340.  * program ("run uudecode filename" won't work), do:
  341.  *        uudecode :== "$disk:[directory]uudecode.exe"
  342.  * and don't forget the leading "$" or it still won't work.  The binaries
  343.  * produced by this program are in VMS "stream-LF" format; this makes no
  344.  * difference to VMS when running decoded executables, nor to VMS unzip,
  345.  * but other programs such as zoo or arc may or may not require the file
  346.  * to be "BILFed" (or "unBILFed" or whatever).  Also, unlike the other
  347.  * flavors, VMS files don't get overwritten (a higher version is created).
  348.  */
  349.  
  350. #ifndef lint
  351. static char sccsid[] = "@(#)uudecode.c    5.5 (Berkeley) 7/6/88";
  352. #endif /* not lint */
  353.  
  354. #ifdef __MSDOS__        /* For Turbo C */
  355. #define MSDOS 1
  356. #endif
  357.  
  358. /*
  359.  * uudecode [input]
  360.  *
  361.  * create the specified file, decoding as you go.
  362.  * used with uuencode.
  363.  */
  364. #include <stdio.h>
  365.  
  366. #ifdef VMS
  367. #  include <types.h>
  368. #  include <stat.h>
  369. #else
  370. #  ifndef MSDOS            /* i.e., UNIX */
  371. #    include <pwd.h>
  372. #  endif
  373. #  include <sys/types.h>   /* MSDOS or UNIX */
  374. #  include <sys/stat.h>
  375. #endif
  376.  
  377. /* single-character decode */
  378. #define DEC(c)    (((c) - ' ') & 077)
  379.  
  380. main(argc, argv)
  381. char **argv;
  382. {
  383.     FILE *in, *out;
  384.     int mode;
  385.     char dest[128];
  386.     char buf[80];
  387.  
  388.     /* optional input arg */
  389.     if (argc > 1) {
  390.         if ((in = fopen(argv[1], "r")) == NULL) {
  391.             perror(argv[1]);
  392.             exit(1);
  393.         }
  394.         argv++; argc--;
  395.     } else
  396.         in = stdin;
  397.  
  398.     if (argc != 1) {
  399.         printf("Usage: uudecode [infile]\n");
  400.         exit(2);
  401.     }
  402.  
  403.     /* search for header line */
  404.     for (;;) {
  405.         if (fgets(buf, sizeof buf, in) == NULL) {
  406.             fprintf(stderr, "No begin line\n");
  407.             exit(3);
  408.         }
  409.         if (strncmp(buf, "begin ", 6) == 0)
  410.             break;
  411.     }
  412.     (void)sscanf(buf, "begin %o %s", &mode, dest);
  413.  
  414. #if !defined(MSDOS) && !defined(VMS)    /* i.e., UNIX */
  415.     /* handle ~user/file format */
  416.     if (dest[0] == '~') {
  417.         char *sl;
  418.         struct passwd *getpwnam();
  419.         struct passwd *user;
  420.         char dnbuf[100], *index(), *strcat(), *strcpy();
  421.  
  422.         sl = index(dest, '/');
  423.         if (sl == NULL) {
  424.             fprintf(stderr, "Illegal ~user\n");
  425.             exit(3);
  426.         }
  427.         *sl++ = 0;
  428.         user = getpwnam(dest+1);
  429.         if (user == NULL) {
  430.             fprintf(stderr, "No such user as %s\n", dest);
  431.             exit(4);
  432.         }
  433.         strcpy(dnbuf, user->pw_dir);
  434.         strcat(dnbuf, "/");
  435.         strcat(dnbuf, sl);
  436.         strcpy(dest, dnbuf);
  437.     }
  438. #endif    /* !defined(MSDOS) && !defined(VMS) */
  439.  
  440.     /* create output file */
  441. #ifdef MSDOS
  442.     out = fopen(dest, "wb");    /* Binary file */
  443. #else
  444.     out = fopen(dest, "w");
  445. #endif
  446.     if (out == NULL) {
  447.         perror(dest);
  448.         exit(4);
  449.     }
  450. #if !defined(MSDOS) && !defined(VMS)    /* i.e., UNIX */
  451.     chmod(dest, mode);
  452. #endif
  453.  
  454.     decode(in, out);
  455.  
  456.     if (fgets(buf, sizeof buf, in) == NULL || strcmp(buf, "end\n")) {
  457.         fprintf(stderr, "No end line\n");
  458.         exit(5);
  459.     }
  460.     exit(0);
  461. }
  462.  
  463. /*
  464.  * copy from in to out, decoding as you go along.
  465.  */
  466. decode(in, out)
  467. FILE *in;
  468. FILE *out;
  469. {
  470.     char buf[80];
  471.     char *bp;
  472.     int n;
  473.  
  474.     for (;;) {
  475.         /* for each input line */
  476.         if (fgets(buf, sizeof buf, in) == NULL) {
  477.             printf("Short file\n");
  478.             exit(10);
  479.         }
  480.         n = DEC(buf[0]);
  481.         if (n <= 0)
  482.             break;
  483.  
  484.         bp = &buf[1];
  485.         while (n > 0) {
  486.             outdec(bp, out, n);
  487.             bp += 4;
  488.             n -= 3;
  489.         }
  490.     }
  491. }
  492.  
  493. /*
  494.  * output a group of 3 bytes (4 input characters).
  495.  * the input chars are pointed to by p, they are to
  496.  * be output to file f.  n is used to tell us not to
  497.  * output all of them at the end of the file.
  498.  */
  499. outdec(p, f, n)
  500. char *p;
  501. FILE *f;
  502. {
  503.     int c1, c2, c3;
  504.  
  505.     c1 = DEC(*p) << 2 | DEC(p[1]) >> 4;
  506.     c2 = DEC(p[1]) << 4 | DEC(p[2]) >> 2;
  507.     c3 = DEC(p[2]) << 6 | DEC(p[3]);
  508.     if (n >= 1)
  509.         putc(c1, f);
  510.     if (n >= 2)
  511.         putc(c2, f);
  512.     if (n >= 3)
  513.         putc(c3, f);
  514. }
  515.  
  516. /*
  517.  * Return the ptr in sp at which the character c appears;
  518.  * NULL if not found
  519.  */
  520.  
  521. #define    NULL    0
  522.  
  523. char *
  524. index(sp, c)
  525. register char *sp, c;
  526. {
  527.     do {
  528.         if (*sp == c)
  529.             return(sp);
  530.     } while (*sp++);
  531.     return(NULL);
  532. }
  533.  
  534. ---CUT HERE--- Save as UUDECODE.DOC and read
  535.  
  536.             UUDECODE.DOC
  537.    by David Kirschbaum <kirsch%maxemail@peo-mis-emh1.army.mil>
  538.  
  539. UUDECODE uudecodes uuencoded files to original binary form.  It is
  540. compatible with the Unix (and other) uuencode/uudecode utilities.
  541.  
  542. Usage:
  543.  
  544.           UUDECODE<RETURN>
  545.     Displays usage message, prompts for input file name.
  546.  
  547.           UUDECODE [-o ][d:][\path\]filename.uue
  548.     Produces a uudecoded file, with the filename taken from
  549.     within the uuencoded file (which might include a path),
  550.     (provided the filename doesn't exist.  Use the "-o"
  551.     (or "/o") switch to force overwriting of any existing
  552.     output file.)
  553.  
  554.           UUDECODE /?  (or -?)
  555.     Writes a brief help screen to STDOUT and terminates.
  556.  
  557. Notes:
  558.  
  559. UUDECODE checks for existing files with the same name as the newly
  560. created output file.  It will produce an error message and abort if it
  561. finds one!  (Use the "-o" switch to force overwriting existing files.)
  562.  
  563. UUDECODE will accept an input path\filename up to 80 chars long, and will
  564. prompt if none is specified.
  565.  
  566. A uudecoded filename is taken from the uuencoded source file and is
  567. written to the current directory (or to the path included in the file
  568. header).
  569.  
  570. Input files may be any length.
  571.  
  572. Uuencoded file headers (mailing headers, etc.) need not be removed.
  573. However, any spurious lines between the "begin" and "end" lines MUST
  574. be removed.
  575.  
  576. Anything beyond the "end" line is ignored.  If no "end" is found, the
  577. output file is saved, but an error message is displayed.
  578.  
  579. Certain uuencoders append a "checksum" character to the end of each
  580. uuencoded line.  UUDECODE ignores these.
  581.  
  582. Uuencoded files generated or moved through a Unix system may have LF
  583. (ASCII 10) line endings instead of the DOS-convention CR/LF (ASCII
  584. 13/10) endings.  UUDECODE will handle those LF ends of line as well.
  585. you MAY get a "end not found" message, but the uudecoded file will be
  586. intact.
  587.  
  588. Certain systems and mailers will strip off trailing spaces on lines.
  589. UUDECODE attempts to replace them.
  590.  
  591. ---CUT HERE--- Save as BOOZ.UUE and use UUDECODE
  592. begin 644 booz.exe
  593. M35I$`!T``P`@`&P&___("8``````````/@````$`^S!J<@``````````````
  594. M```````````````````````!````W@```!`!````````````````````````
  595. M````````````````````````````````````````````````````````````
  596. M````````````````````````````````````````````````````````````
  597. M````````````````````````````````````````````````````````````
  598. M````````````````````````````````````````````````````````````
  599. M````````````````````````````````````````````````````````````
  600. M````````````````````````````````````````````````````````````
  601. M````````````````````````````````````````````````````````````
  602. M````````````````````````````````````````````````````````````
  603. M````````````````````````````````````````````````````````````
  604. M``````````````````````"Z"P,NB18U`K0PS2&++@(`BQXL`([:HY``C`:.
  605. M`(D>B@")+J8`Z#T!Q#Z(`(O'B]BY_W_\\J[C84,F.`5U]H#-@/?9B0Z(`+D!
  606. M`-/C@\,(@^/XB1Z,`(S:*^J+/B(%@?\``G,'OP`"B3XB!8''Q&MR*`,^&@5R
  607. M(K$$T^]'.^]R&8,^(@4`=`>#/AH%`'4.OP`0.^]W!XO]ZP/IA`&+WP/:B1Z>
  608. M`(D>H@"AC@`KV([`M$I7S2%?T^?ZCM*+Y_LSP"Z.!C4"OYX%N<1K*\_\\ZJT
  609. M`,T:B1:4`(D.E@`S[;@*`X[8O@``OPP`Z.H`+HX>-0+_-H8`_S:$`/\V@@#H
  610. M.@$NQ@;G`7(NQ@;6`0!0Z#D8N`H#CMB^#`"_#`#HN``NCAXU`O\6J`/_%JH#
  611. M_Q:L`RZ.'C4"Z'(`,\"+\+DM``($@-0`1N+X+:4,=`FY&0"Z+0#HQ0"+[+1,
  612. MBD8"S2&Y#@"Z1@#IP0`>N``US2&)'G(`C`9T`+@$-<TAB1YV`(P&>`"X!37-
  613. M(8D>>@",!GP`N`8US2&)'GX`C`:``+@`)8S*CMJZ7`'-(1_#'K@`)<46<@#-
  614. M(1\>N`0EQ19V`,TA'QZX!27%%GH`S2$?'K@&)<46?@#-(1_#M/^+UXO>.]]T
  615. M%(`__W0*.&<!=P6*9P&+TX/#!NOH.]=T((O:'@<&@#\`Q@?_+HX>-0)T!R;_
  616. M7P(?Z\4F_U<"'^N^P[1`NP(`S2'#N1X`NE0`+HX>-0+HZO^X`P!0Z/G^```!
  617. M`%6+[$Q,5E>+?@2+=@:#_P-]*+C7`%#HD@!9N!(!4.B*`%FXJ`!0Z((`6;@L
  618. M`5#H>@!9N`$`4.C6%EGHN@.+1`*)1OZ+7OZ`/TQU`\8';(M>_H`_6'4#Q@=X
  619. MBU[^@#]4=0/&!W2+7OZ`/VQT&H`_>'05@#]T=!"XJ`!0Z"X`6;@!`%#HBA99
  620. MB\8%!@!0B\<%_?]0_W;^_W0$Z-\&@\0(,\!0Z&L665]>B^5=PU6+[%97BWX$
  621. M"_]T&U?HO"A9B_`+P'00N+X#4%:X`0!05^BF&X/$"%]>7<-5B^Q6BT8$)7\`
  622. MB_"Y!`"[?`,N.0=T!D-#XO?K&"[_9PBX30%0Z*W_6>L<N%@!Z_2X80'K[S/`
  623. M4%"X:@%0N&8`4.B\_X/$"/]V!NB(_UG_=@CH@?]9_W8*Z'K_68-^!&9U"+@!
  624. M`%#HT!597EW#90!F`&T`=P`Z`S\#5@,P`U6+[%;K9H-^"@!\#G\'@7X(`"!V
  625. M!;X`(.L#BW8(B\:9*48(&58*_W8$5K@!`%"XM`=0Z)<9@\0(.\9T!;@#`.L[
  626. M5KBT!U#H[@%968-^!@!T&_]V!E:X`0!0N+0'4.C"&H/$"#O&=`6X`@#K$(-^
  627. M"@!_E'4&@WX(`'>,,\!>7<-5B^Q6@WX&`'4%N`$`ZR4S]NL:B\;1X(M>"`/8
  628. M_S?_=@3H$P!960O`=`+KWD8[=@9\X3/`7EW#58OL5E>+?@2+=@8SP(O0B\CK
  629. M#(`]`'4%N`$`ZS1&1XH$.@5T[H`]`'0'@#P_=0+K[(`\*G4'1HO.B]?KX@O2
  630. M=`Z+VH`_`'0'0HOZB_'KT#/`7UY=PU6+[#/`4%"X>@%0N&8`4.AF_H/$"%W#
  631. M58OL5NLBBU8&BT8$L03H%BB)1@2)5@:+5@J+1@BQ!.@%*(E&"(E6"H-^!@!_
  632. MV'4'@7X$$"=WSXM&!`M&!G4$,_;K,S/`N@H`4%+_=@;_=@2+3@:+7@0K7@@;
  633. M3@HSTKCH`^AA*E)0Z!`G!04`@](`4E#H!2>+\(O&7EW#58OL5E<S]NL)BUX*
  634. MBD8$B`!&.W8,?/*+1@H#1@Q(B_C&!0!/BT8,2(OP@WX(`'\(?$>#?@8`<D$S
  635. MP+H*`%!2_W8(_W8&Z,4F!#"(!4\SP+H*`%!2_W8(_W8&Z*$FB48&B58(3HM&
  636. M!@O"=`0+]G6[BT8&"T8(=0+K&C/VZP>+7@K&`"I&.W8,?/2+7@P#7@K&1_\`
  637. MBT8*7UY=PU6+[%97BSZ>!S/VZQ^+Q[$(T^B+7@10B@"8B]\SV('C_P#1XU@S
  638. MAYX%B_A&.W8&<MR)/IX'7UY=PU6+[%97BWX$,_;1Y[H(`.L9T>^+QS/&J0$`
  639. M=`N+QM'H-0&@B_#K`M'N2@O2?^.+QE]>7<-5B^Q6,_;K#E;HP/]9B][1XXF'
  640. MG@5&@?X``7+L7EW#58OLBQZ0`='CBT8$B8>V)_\&D`&!/I`!T`=R$C/`4%"X
  641. MK@%0N&8`4.B5_(/$"%W#58OLBT8$H[0GBT8&HZP'QP:R!PD`QP:J!P`"QP9>
  642. M-P(!QP:0`0``QP:N!P``QP9@-P``@SZ.`0!U#[@$8%#H#R=9HZ0'_P:.`8,^
  643. MI`<`=0/HQ?W_-K0GN/P/4+@!`%"XM!=0Z',6@\0(BQZT)_='`A``=`:X`0#I
  644. M!P'H\`'H`P&CJ`<]`0%U38,^8#<`=$*#/JP'`'0N_S:L!_\V8#>X`0!0N+0'
  645. M4.B&%X/$"#L&8#=T$C/`4%"XQP%0N&8`4.C/^X/$"/\V8#>XM`=0Z'7^65DS
  646. MP.NB@3ZH!P`!=1WHC0'HH`"CJ`>CH@>BH`>BI@>@H`>84.B-`5GK@Z&H!Z.P
  647. M!Z&H!SL&7C=R.Z&B!Z.H!Z"F!YA0Z+G^6>LJH:@'N@,`]^J+'J0'`]B*1P*8
  648. M4.B@_EFAJ`>Z`P#WZHL>I`<#V(L'HZ@'@3ZH!_\`=\Z@J`>BI@>BH`>84.AV
  649. M_NL1_PZ0`8L>D`'1X_^WMB?H%P%9@SZ0`0!UY^AP`:&P!Z.B!^G\_EW#58OL
  650. M@^P*5E>AK@<E!P")1OBAK@?1Z-'HT>B)1ORAK@<#!K('HZX'@7[\]P]R8XM&
  651. M^`,&L@>CK@>X_`\K1OR)1O:+1OP%M!>+^+ZT%^L)B@6(!$=&_T[V@W[V`'_Q
  652. M_S:T)_]V_+@!`%!6Z.H4@\0(BQZT)_='`A``=!(SP%!0N-X!4+AF`%#HA/J#
  653. MQ`C'1OP``(M&_`6T%XOPB@2T`(E&_D:*!+0`L0C3X(M6_@O0B5;^1HH$B$;[
  654. M@W[X`'0:BT;^BD[XT^A0BD;[F+$0*D[XT^!:"]")5OZ+'K('T>.+1OXCAY(!
  655. M7UZ+Y5W#58OLQP:R!PD`QP:J!P`"QP9>-P(!7<-5B^R!/F`W_`]R2(,^K`<`
  656. M="[_-JP'_S9@-[@!`%"XM`=0Z(85@\0(.P9@-W02,\!04+C[`5"X9@!0Z,_Y
  657. M@\0(_S9@-[BT!U#H=?Q96<<&8#<``(L>8#>*1@2(A[0'_P9@-UW#58OLH5XW
  658. MN@,`]^J+'J0'`]B@H`>(1P*A7C>Z`P#WZHL>I`<#V*&B!XD'_P9>-Z%>-SL&
  659. MJ@=R$X,^L@<-?0S_!K('H:H'T>"CJ@==PU6+[('LT@!65\=&]@``QT;T``#'
  660. M1O(!`(MV!.L!1H`\`'0%@#PN=?6`/"YT+O]V!.C*(5D%!0!0Z.$C68OP"\!U
  661. M`^B?^O]V!%;HC2%96;AP`E!6Z$HA65F)=@2X=0)0_W8$Z/`165F+^`O`=16X
  662. MB`)0_W8$N'@"4+AF`%#HW?B#Q`A7C4;$4.B!!5E9,\!0_W;>_W;<5^B_$X/$
  663. M"%>-1I)0Z)@%65F!?I+<IW4'@7Z4Q/UT$C/`4%"XB@)0N&8`4.B9^(/$"(M&
  664. MF`M&FG4#Z;`$BT::BU:8B5;ZB4;\_W8*_W8(C4:W4.AN^8/$!@O`=0/I@02+
  665. M7@:`/VQT`^EU`O]VK/]VJO]VJ/]VINCM^8/$"(E&YHM&H+$)T^@E?P")1O"+
  666. M1J"Q!=/H)0\`B4;NBT:@)1\`B_"+1J*Q"]/H)1\`B4;LBT:BL073Z"4_`(E&
  667. MZHM&HB4?`-'@B4;H@W[R`'05N*`"4.C)]UFXR`)0Z,'W6<=&\@``N`D`4(V&
  668. M+O]0_W:H_W:FN"``4.CJ^8/$"E"-AD+_4.A!(%E9N`4`4(V&+O]0BT;FF5)0
  669. MN"``4.C&^8/$"E"-AD+_4.CD'UE9N/0"4(V&0O]0Z-8?65FX"0!0C88N_U#_
  670. M=JS_=JJX(`!0Z)3Y@\0*4(V&0O]0Z+(?65FX]P)0C89"_U#HI!]96;@#`%"-
  671. MAB[_4(O&F5)0N"``4.AC^8/$"E"-AD+_4.B!'UE9N/H"4(V&0O]0Z',?65FX
  672. M`P!0BT;NN@,`]^J+%D8"`]!2C89"_U#HC1:#Q`:X_`)0C89"_U#H1Q]960OV
  673. M=":#?NX`=""X`P!0C88N_U`SP+ID`%!2BT;P!5``F5)0Z`(@4E#K#[@#`%"-
  674. MAB[_4#/`,])04K@@`%#HV_B#Q`I0C89"_U#H^1Y96;C^`E"-AD+_4.CK'EE9
  675. MN`,`4(V&+O]0BT;LF5)0N#``4.BI^(/$"E"-AD+_4.C''EE9N``#4(V&0O]0
  676. MZ+D>65FX`P!0C88N_U"+1NJ94E"X,`!0Z'?X@\0*4(V&0O]0Z)4>65FX`@-0
  677. MC89"_U#HAQY96;@#`%"-AB[_4(M&Z)E24+@P`%#H1?B#Q`I0C89"_U#H8QY9
  678. M6;@$`U"-AD+_4.A5'EE9C4:W4(V&0O]0Z$<>65FX!P-0C89"_U#H.1Y968V&
  679. M0O]0Z,#UZ0`"@'ZN`G\,@'ZN`G4?@'ZO`7X9N`D#4(U&MU"X&`)0N&4`4.C#
  680. M]8/$".G6`8M>!H`_='4#Z;@`@W[V`'0#Z:\`N`L#4(U&MU#HEPY968E&_@O`
  681. M=0/IF`!0Z.H+6;@9`U"-1K=0N`X#4+AM`%#H>O6#Q`BXK@-0N`$`4%"-1O!0
  682. MZ+`/@\0(N*X#4+@!`%!0C4;N4.B=#X/$"(!^[@IUYX!^\'ET'H!^\%ET&(!^
  683. M\&YT$H!^\$YT#(!^\&%T!H!^\$%UFH!^\&%T!H!^\$%U`_]&]H!^\&YT!H!^
  684. M\$YU$K@S`U"-1K=0N"D#4+AM`.DS_XM>!H`_='4'QT;^``#K$+@U`U"-1K=0
  685. MZ-D-65F)1OZ+7@:`/W1T'X-^_@!U&;A(`U"-1K=0N#@#4+AE`%#HNO2#Q`CI
  686. MO@`SP%#_=I[_=IQ7Z*,/@\0(QP:>!P``C4:W4.AL]%FX5@-0Z&3T68!^EP!U
  687. M%?]VK/]VJO]V_E?H^/2#Q`B)1OCK-H!^EP%U"?]V_E?HUO?K#8!^EP)U"_]V
  688. M_E?H?P=96>O;N%@#4(U&MU"X&`)0N&4`4.A`](/$"(-^^`!T(8U&MU#HZQQ9
  689. M@W[X`74%Z*[UZRZX;0-0C4:W4+A:`^E4_XM&I#L&G@=T#[AO`U#HV_-9QT;T
  690. M`0#K"+B'`U#HS/-9BUX&@#]T=`?_=O[H1`I9,\!0_W;\_W;ZZ13[5^@S"EG_
  691. M=O3H"0I97UZ+Y5W#58OL@^P$5HMV!(I$`Y@E_P"Q"-/@4(I$`I@E_P!:"\*)
  692. M1OS'1OX``(M&_,=&_```B4;^BD0!F"7_`-/@4(H$F"7_`%H+P@E&_(%._@``
  693. MBU;^BT;\7HOE7<-5B^Q6BW8$BD0!F"7_`+$(T^!0B@28)?\`6@O"7EW#58OL
  694. M@^PB5O]V!K@B`%"X`0!0C4;>4.B!#8/$"(OPC4;>4/]V!.@Z`%E9B\9>B^5=
  695. MPU6+[(/L-%;_=@:X,P!0N`$`4(U&S%#H4`V#Q`B+\(U&S%#_=@3H>0!968O&
  696. M7HOE7<-5B^Q,3%97BW8$BWX&QT;^``#K"HM>_HH!B`#_1OZ#?OX4?/"+QP44
  697. M`%#H4O]9B404B\<%%@!0Z$7_68E$%HO'!1@`4.C?_EF)1!B)5!J+QP4<`%#H
  698. MS_Y9B40<B50>BD4@B$0@BD4AB$0A7UZ+Y5W#58OL3$Q65XMV!(M^!E?H_OY9
  699. MB02+QT!`4.CS_EF)1`**102(1`2*106(1`6+QP4&`%#H@?Y9B40&B50(B\<%
  700. M"@!0Z''^68E$"HE4#(O'!0X`4.BZ_EF)1`Z+QP40`%#HK?Y9B400B\<%$@!0
  701. MZ*#^68E$$HO'!10`4.@Z_EF)1!2)5!:+QP48`%#H*OY9B408B50:BD4<B$0<
  702. MBD4=B$0=BD4>B$0>B\<%(`!0Z`C^68E$'XE4(8O'!20`4.A1_EF)1"/'1OX`
  703. M`.L,BU[^BD$FB$`E_T;^@W[^#7SN7UZ+Y5W#58OL5HI.!-,F8C?K6:%D-RE&
  704. M!(M.!*%F-]/@BQ9B-PO0B19B-XL>;FOW1P(@`'0(QP9F-P``ZRB+'FYKBP=(
  705. MB0<+P'P.BQYN:XMW"O]'"HH$ZPC_-FYKZ%$46;0`HV8WQP9D-P@`BT8$.P9D
  706. M-W^>*09D-XL.9#>A9C?3Z(L68C<+T(D68C=>7<-5B^Q6L1`J3@2A8C?3Z(OP
  707. M_W8$Z&'_68O&7EW#58OL5HMV!H-^"`!T)_]V"%:X`0!0_W8$Z'T,@\0(.\9S
  708. M$C/`4%"XB@-0N&8`4.C(\(/$"%;_=@3H<O-965Y=PU6+[,<&8C<``,<&9C<`
  709. M`,<&9#<``+@0`%#H__Y97<-5B^R#[`165_]V!NAW_UF)1OP+P'4R_W8&Z&G_
  710. M68E&_C/VZP;&A&A7`$8[=@1\]3/VZPR+WM'CBT;^B8=R7T:!_@`!?.[IA0`S
  711. M]NM:H6(WL0W3Z(E&_CT'`'40OP`0ZP71[_]&_H4^8C=U]8-^_@=]!;@#`.L&
  712. MBT;^!?W_4.A\_EF*1OZ(A&A71CMV"'48N`(`4.CP_EF)1O[K!L:$:%<`1O].
  713. M_GWU.W;\?*'K!L:$:%<`1CMV!'SUN')?4+@(`%"X:%=0_W8$Z#`#@\0(7UZ+
  714. MY5W#58OL@^P$5E>X"0!0Z*/^68E&_`O`=32X"0!0Z)3^68E&_C/VZP;&A&QI
  715. M`$:!_OX!?/0S]NL,B][1XXM&_HF':#=&@?X`$'SNZ<H`,_;IF0"+'F(WL0C3
  716. MZ]'CBX=R7XE&_CT3`'PHOX``A3YB-W0+BU[^T>.+AW)AZPF+7O[1XXN'?%>)
  717. M1O[1[X-^_A-]VXM>_HJ':%>T`%#HCOU9@W[^`G\]@W[^`'4'QT;^`0#K*8-^
  718. M_@%U#;@$`%#H]OU9!0,`ZPNX"0!0Z.G]6044`(E&_NL&QH1L:0!&_T[^??7K
  719. M"HI&_@3^B(1L:48[=OQ]`^E?_^L&QH1L:0!&@?[^`7STN&@W4+@,`%"X;&E0
  720. MN/X!4.@5`H/$"%]>B^5=PU6+[%97@SYJ:0!U0+@0`%#HA/U9HVII"\!U"L<&
  721. M:&D!`#/`ZV^X`P!0N`4`4+@3`%#HWOV#Q`;HJ_ZX__]0N`0`4+@.`%#HR?V#
  722. MQ`;_#FIIBQYB-[$$T^O1XXNW:#>!_OX!<B._"`"%/F(W=`J+WM'CB[=R8>L(
  723. MB][1XXNW?%?1[X'^_@%SX(J$;&FT`%#H??Q9B\9?7EW#58OL3$Q6BQYB-[$(
  724. MT^O1XXN'<E^)1OX]#@!R*+Z``(4V8C=T"XM>_M'CBX=R8>L)BU[^T>.+AWQ7
  725. MB4;^T>Z#?OX.<]N+7OZ*AVA7M`!0Z"7\68-^_@!T&(M&_DA0Z)_\68I._O[)
  726. MN@$`T^(#T(E6_HM&_EZ+Y5W#58OLZ-W\QP9J:0``7<-5B^SH[/_'!FQK``#'
  727. M!FAI``!=PU6+[$Q,5E>+?@8S]NL@BQYJ:XH!B]Z(`:%J:T`E_Q^C:FM&B\8[
  728. M1@1U!(O&ZV[_#FQK?=KHE_Z)1OZ#/FAI`'0"Z^>!?O[_`'<1B]Z*1OZ(`4:+
  729. MQCM&!'7;Z\^+1OXM_0"C;&OH__Z+UBO02H'B_Q^)%FIKZQZ+'FIKB@&+WH@!
  730. MH6IK0"7_'Z-J:T:+QCM&!'4"ZY;_#FQK?=SKF%]>B^5=PU6+[%:+1@2C;FOH
  731. M/?_K';BT!U"X`"!0Z$3_65F+\/]V!E"XM`=0Z+;[@\0&@SYH:0!TW#/`7EW#
  732. M58OL@^QV5E?'1OX!`.L1BU[^T>.-1M`#V,<'``#_1OZ#?OX0=NG'1OX``.L8
  733. MBUX&`U[^B@>T`-'@C5;0`\*+V/\'_T;^BT;^.T8$<N#'1HP``,=&_@$`ZS&+
  734. M7O[1XXU&B@/8BP>+7O[1XXU6T`/:BQ>Q$"I._M/B`\*+7OY#T>.-5HH#VHD'
  735. M_T;^@W[^$';)@WZL`'02,\!04+B4`U"X9@!0Z/OK@\0(N!``*T8(B4;XQT;^
  736. M`0#K*8M>_M'CC4:*`]B*3OC3+XM>_M'CC4:N`]B*3@@J3OZX`0#3X(D'_T;^
  737. MBT;^.T8(=L_K&8M>_M'CC4:N`]BQ$"I._K@!`-/@B0?_1OZ#?OX0=N&+7@C1
  738. MXXU&C`/8BP>*3OC3Z(E&_@O`=":X`0"*3@C3X(E&_.L1BT;^T>"+7@H#V,<'
  739. M``#_1OZ+1OX[1OQUYXM&!(E&]K$/*DX(N`$`T^")1O+'1OH``.G@`(M>!@->
  740. M^HH'M`"+^`O`=0/IR@"+W]'CC4:*`]B+!XO?T>.-5JX#V@,'B4;T.WX(=RR+
  741. MW]'CC4:*`]B+!XE&_NL2BT;^T>"+7@H#V(M&^HD'_T;^BT;^.T;T<N;K<HO?
  742. MT>.-1HH#V(L'B4;\BD[XT^C1X(M6"@/0B_*+QRM&"(E&_NM!@SP`=1R+7O;1
  743. MXS/`B8=\5XM>]M'CB8=R88M&]HD$_T;VBT;RA4;\=`F+!-'@!7)AZP>+!-'@
  744. M!7Q7B_#19OS_3OZ#?OX`=;F+1OJ)!(O?T>.-1HH#V(M&](D'_T;ZBT;Z.T8$
  745. M<P/I%?]?7HOE7<-5B^Q6,\!0_W8$Z"T,65F+\#W__W4"ZQKW1@8"`'0&]\8!
  746. M`'4$,\#K"<<&D@`%`+C__UY=PU6+[(,^I@,@=06X`0#K$XL>I@/1XXM&!(F'
  747. M<&O_!J8#,\!=PU6+[%:+=@0+]GP%@_X4?`FX!@!0Z-`-ZP^+WM'CQX?N!/__
  748. M5NC5"UE>7</#58OLZPJ+'J8#T>/_EW!KH:8#_PZF`PO`=>O_=@3HI^=97<-5
  749. MB^Q65XMV!+___SET#G0"ZV"#?`8`=!Z#/`!]"U;H5P!9"\!T`NM*]T0"!`!T
  750. M!_]T".A@$UF`?`0`?`N*1`284.AM_UF+^,=$`@``QT0&``#'!```QD0$_X-\
  751. M#`!T$S/`4/]T#.@1"5#H\Q%9QT0,``"+QU]>7<-5B^Q65XMV!`OV=07H<P#K
  752. M:SET#G0%N/__ZV.#/`!\*?=$`@@`=0J+Q@4%`#E$"G46QP0``(O&!04`.40*
  753. M=0B+1`B)1`KK->LSBT0&`P1`B_B+!"O'B017BT0(B40*4(I$!)A0Z!,)@\0&
  754. M.\=T#O=$`@`"=0>!3`(0`.N:,\!?7EW#58OL3$Q65\=&_@``OQ0`OJX#ZQ+W
  755. M1`(#`'0(5NA?_UG_1OZ#QA"+QT\+P'7GBT;^7UZ+Y5W#58OL3$Q65XMV"#/_
  756. MQT;^```SR8O>1HH'BM`\<G4(OP$`N0$`ZR"`^G=U!;\"`^L(@/IA=0V_`@G'
  757. M1OZ``+D"`.L$,\#K;XH$BM!&/"MT#8`\*W4C/'1T!#QB=1N`^BMU!(H$BM"+
  758. MQR7\_PT$`(OXQT;^@`&Y`P"`^G1U!H'/`$#K'H#Z8G4&@<\`@.L/H18%)0#`
  759. M"_B+QZD`@'0$@<E``,<&J@-,)(M>!HD_BUX$BT;^B0>+P5]>B^5=P@8`58OL
  760. M@^P$5HMV"/]V!(U&_E"-1OQ0Z"O_B40""\!T'(!\!`!](_]V_/]V_O]V!NB"
  761. M#8/$!HA$!`K`?0W&1`3_QT0"```SP.L_BD0$F%#HF`M9"\!T!8%,`@`"N``"
  762. M4(5$`G0%N`$`ZP(SP%`SP%!6Z/0%@\0("\!T!U;HEOU9Z\3'1`P``(O&7HOE
  763. M7<(&`%:^K@.`?`0`?`J+QH/&$#WN!'+P@'P$`'P$,\#K`HO&7L-5B^Q6Z-?_
  764. MB_`+P'4$,\#K"E;_=@3_=@;H-?]>7<-5B^Q6BW8(.70.=`0SP.L/5N@Q_5E6
  765. M_W8$_W8&Z!/_7EW#58OL5H-^!`!\">B1_XOP"\!U!#/`ZQ"*1@2(1`16,\!0
  766. M_W8&Z.G^7EW#58OL3$Q65XM^".G%`/]&!HM>!(M'!CM&!G8%BT8&ZP:+7@2+
  767. M1P:+\(M>!/='`D``=%Z#?P8`=%B+1P8[1@9S4(,_`'5+_TX&,_;K#(M>!`-W
  768. M!HM'!BE&!HM>!(M'!CM&!G;I5E>*1P284.A:#H/$!HE&_@/X.\9T68O&*T;^
  769. M`48&BUX$@T\"(.M1BD;^B`5'_TX&BT8&"\!T,$YT+8M>!(L'2(D'"\!\$E.+
  770. M7PJ+PUO_1PJ+V(H'M`#K!_]V!.CI"%F)1OX]__]UP(-^_O]U`NNO@WX&`'0#
  771. MZ3+_BT8&7UZ+Y5W"!@!5B^R#[`16BW8&"_9U`NLVB]XSR8M&"#/2Z/\1B4;\
  772. MB5;^@_H!=Q]R!`O`<QG_=@3_=OS_=@KHX?Y0BT;\6BO",]+W]NL",\!>B^5=
  773. MPU6+[%97BUX$@S\`?0B+1P8#!T#K"HM>!(L'F3/"*\*+\(O(BUX$]T<"0`!T
  774. M`NLOBUX$BW\*@S\`?1WK"4^+WX`_"G4!08O&3@O`=?#K$(O?1X`_"G4!08O&
  775. M3@O`=?"+P5]>7<("`%6+[%:+=@16Z,W[60O`=`6X___K2H-^"@%U$(,\`'X+
  776. M5NAV_YDI1@895@B!9`)?_L<$``"+1`B)1`K_=@K_=@C_=@:*1`284.C["(/$
  777. M"(/Z_W4*/?__=06X___K`C/`7EW#58OL@^P$5HMV!(I$!)A0Z$T$68E&_(E6
  778. M_H,\`'T-5N@6_YD!1OP15O[K"U;H"?^9*4;\&5;^BU;^BT;\7HOE7<-5B^R#
  779. M[`16BW8&"_9U!8M&".LQB]XSR8M&"#/2Z*80B4;\B5;^@_H!=QAR!`O`<Q+_
  780. M=@3_=OS_=@KH/0$STO?VZP(SP%Z+Y5W#58OL5HMV!HL$2(D$5HI&!)A0Z`4`
  781. M65E>7<-5B^Q6BW8&BD8$HK!K@SS_?3>+!$")!(M<"O]$"J"P:X@']T0""`!T
  782. M'8`^L&L*=`>`/K!K#74/5NB7^ED+P'0&N/__Z;D`Z;$`]T0"D`!U!_=$`@(`
  783. M=0>!3`(0`.OB@4P"``&#?`8`=$2#/`!T"U;H8/I9"\!T`NO'BT0&]]B)!(M<
  784. M"O]$"J"P:X@']T0""`!T&8`^L&L*=`>`/K!K#74+5N@N^ED+P'0"ZY7K38`^
  785. ML&L*=1_W1`)``'48N`$`4+@<!5"*1`284.@$#(/$!CT!`'48N`$`4+BP:U"*
  786. M1`284.CL"X/$!CT!`'0/]T0"``)U"(%,`A``Z4;_H+!KM`!>7<-5B^Q6BW8$
  787. MN+X#4%;H[_Y965Y=PU6+[$Q,5E>+?@:+=@2)?O[W1`((`'0FZQI6BUX(_T8(
  788. MB@>84.C#_EE9/?__=04SP.GW`(O'3PO`==_IZ@#W1`)``'4#Z8,`@WP&`'1E
  789. M.7P&<RB#/`!T"U;H8?E9"\!T`NO,5_]V"(I$!)A0Z$L+@\0&.\=S`NNWZ:T`
  790. MBP0#QWP:@SP`=0JX__\K1`:)!.L+5N@I^5D+P'0"ZY17_W8(_W0*Z)('@\0&
  791. MBP0#QXD$`7P*ZW57_W8(BD0$F%#H^PJ#Q`8[QW,#Z6;_ZUV#?`8`=$'K-HL$
  792. M0(D$"\!]%HM<"O]$"E.+7@C_1@B*!UN(![0`ZP]6BUX(_T8(B@=0Z-+]65D]
  793. M__]U`^DF_XO'3PO`=</K%E?_=@B*1`284.@9`H/$!CO'<P/I!_^+1OY?7HOE
  794. M7<(&`*"R`YA0Z-\%60O`=0:!)K`#__VX``)0A0:P`W0%N`$`ZP(SP%`SP%"X
  795. MK@-0Z#8`@\0(H,(#F%#HK059"\!U!H$FP`/__;@``E"%!L`#=`6X`@#K`C/`
  796. M4#/`4+B^`U#H!`"#Q`C#58OL5E>+=@2+?@HY=`YU#(-^"`)_!H'__W]V!KC_
  797. M_^FF`(,^(`4`=0Z!_KX#=0C'!B`%`0#K$X,^'@4`=0R!_JX#=0;'!AX%`0"#
  798. M/`!T$;@!`%`SP#/24%)6Z/#[@\0(]T0"!`!T!_]T".C5"EF!9`+S_\=$!@``
  799. MB\8%!0")1`B)1`J#?@@"=#T+_W8YQP:H`VTD@WX&`'465^AT"UF)1@8+P'0'
  800. M@4P"!`#K`^EM_XM&!HE$"HE$"(E\!H-^"`%U!8%,`@@`,\!?7EW#58OL5E?_
  801. M=@3H&PE9B_C_=@;H$@E9B_`[1@AV`XMV"%:+1@0#QU#_=@;HR`6#Q`:+QP/&
  802. MBUX$`]C&!P"+1@1?7EW#58OLN`$`4#/`,])04O]V!.AR!(/$"%W#58OL5HMV
  803. M!@OV=0.^M&O&!`"X)`505NA6"%E9N`H`4(O&!0,`4#/`4/]V!.@,!8/$"+@H
  804. M!5!6Z#8(65F+QEY=P@0`58OL5HMV!%:#/K)K_W4%N`(`ZP.X`0`!!K)KH;)K
  805. M4.B<_XOP,\!05NAR]5E9/?__==6+QEY=PU6+[('LB@!65XM&"$`]`@!S!3/`
  806. MZ=(`BUX$T>/WA^X$`(!T$O]V"/]V!O]V!.A3"(/$!NFS`(M>!-'C@:?N!/_]
  807. MBT8&B4;XBT8(B4;\ZU7_3OR+7OC_1OB*!XA&^SP*=03&!`U&BD;[B`1&C89V
  808. M_XO6*]"!^H``?#&+UBO0B_I24/]V!.C\!X/$!HE&_CO'=!,+P',%N/__ZTJ+
  809. M1@@K1OSK/>M`C89V_XOP@W[\`'6?C89V_XO6*]"+^HO""\!V)E*-AG;_4/]V
  810. M!.BW!X/$!HE&_CO'=!`+P',"Z[F+1@@#1OXKQ^L#BT8(7UZ+Y5W#5E<S_[ZN
  811. M`^L0]T0"`P!T!5;H"_59@\801X/_%'SK7U[#5E>_!`"^K@/K$/=$`@,`=`56
  812. MZ&'U64^#QA`+_W7L7U[#58OLBT8$B]2!Z@`".\)S!Z.:`#/`ZPG'!I(`"`"X
  813. M__]=PU6+[(M&!(M6!@,&F@"#T@"+R`O2=1"!P0`"<@H[S',&AP::`.L)QP:2
  814. M``@`N/__7<-5B^S_=@3HI/]97<-5B^R+1@294E#HM_]965W#58OLBTX(M$.*
  815. M1@:+5@3-(7(#D>L$4.CM`5W#58OLM#Z+7@3-(7(,T>/'A^X$__\SP.L$4.C/
  816. M`5W#58OL@^P$BUX$T>/WA^X$``)T!;@!`.M,N`!$BUX$S2%R/O;"@'4UN`%"
  817. M,\F+T<TA<BY24+@"0C/)B]'-(8E&_(E6_EI9<AFX`$+-(7(2.U;^<@EW!3M&
  818. M_'("Z[<SP.L$4.AI`8OE7<-65[\4`+ZN`^L3BT0")0`#/0`#=056Z"ST68/&
  819. M$(O'3PO`=>9?7L-5B^Q6BW8$]T0"``)T`^C(__]T!HM$"(E$"E"*1`284.B<
  820. M!(/$!HD$"\!^"(-D`M\SP.L>@SP`=0Z+1`(E?_X-(`")1`+K",<$``"#3`(0
  821. MN/__7EW"`@!5B^Q6BW8$BP1`B016Z`0`65Y=PU6+[%:+=@2#/`!^$(L$2(D$
  822. MBUP*_T0*B@?I@@"#/`!\!_=$`A`!=`F#3`(0N/__ZV^!3`*``(-\!@!T#%;H
  823. M5?\+P'0"Z^;KQ/=$`@`"=`/H'/^X`0!0N,)K4(I$!)A0Z*<$@\0&"\!U((I$
  824. M!)A0Z)7^63T!`'0"ZZ^+1`(E?_X-(`")1`+KI>NC@#[":PUU!_=$`D``=+&#
  825. M9`+?H,)KM`!>7<.XK@-0Z%;_6<-5B^RT1(I&!HM>!(M."HM6",TA<@R#?@8`
  826. M=02+PNL&ZP10Z`(`7<-5B^Q6BW8$"_9\%8/^6'X#OE<`B38N!8J$,`68B_#K
  827. M$8O&]]B+\#TC`'_EQP8N!?__B3:2`+C__UY=P@(`58OLN`!$BUX$S2&2)8``
  828. M7<-5B^R+7@31XX&G[@3__;1"BD8*BUX$BTX(BU8&S2%R`NL%4.B,_YE=PU6+
  829. M[(/L(E97!HM^"AX'BUX(@_LD=UB`^P)R4XM&#(M.#@O)?1&`?@8`=`O&!2U'
  830. M]]GWV(/9`(UVWN,/D2O2]_.1]_.(%$;C">OQ*]+W\X@41@O`=?6-3M[WV0/.
  831. M_$Z*!"P*<P0$.NL#`D8$JN+OL`"J!XM&"E]>B^5=P@P`58OL@WX("G4&BT8$
  832. MF>L%BT8$,])24/]V!O]V"+`!4+!A4.A>_UW#58OL_W8&_W8$_W8(_W8*L`!0
  833. ML&%0Z$3_7<-5B^S_=@;_=@3_=@C_=@J#?@H*=06X`0#K`C/`4+!A4.@?_UW#
  834. M58OL5E>,V([`BWX$BW8&BTX(T>G\\Z5S`:2+1@1?7EW#58OL5E>,V([`BT8$
  835. M.T8&<P;]N`$`ZP/\,\"+=@2+?@:+3@@+P'0&`_%.`_E/]\<!`'0$XQ&D22OP
  836. M*_C1Z?.E<P4#\`/XI/Q?7EW#58OL_W8(_W8$_W8&Z*;_@\0&BT8$7<-5B^R+
  837. M3@2T/(M6!LTA<@+K!%#H#OY=P@0`58OLBUX$*\DKTK1`S2%=P@(`58OL@^P$
  838. M5E>+=@;WQ@#`=0RA%@4E`,"+U@O0B_+WQ@`!='JA&`4A1@B+1@BI@`%U![@!
  839. M`%#HP/TSP%#_=@3HL?M968E&_CW__W4I]T8(@`!T!#/`ZP.X`0")1O[WQO``
  840. M="G_=@0SP%#H:O^+^`O`?1/IL0#WQ@`$=".X4`!0Z'?]Z:,`5^B%^UGK%_]V
  841. M!/]V_NA!_XOX"\!]:NF(`,=&_@``5O]V!.B$`%E9B_@+P'Q3,\!05^@9_5E9
  842. MB4;\J8``=!Z!S@`@]\8`@'0>)?\`#2``4+@!`%!7Z/;\@\0&ZPKWQ@`"=`17
  843. MZ`3_@W[^`'04]\;P`'0.N`$`4%#_=@3H\?J#Q`8+_WP=]\8``W0%N``0ZP(S
  844. MP(O6@>+_^`O0B]_1XXF7[@2+QU]>B^5=PU6+[$Q,L`&+3@;WP0(`=0JP`O?!
  845. M!`!U`K``BU8$L?`B3@8*P;0]S2%R&HE&_HM>_M'CBT8&)?_X#0"`B8?N!(M&
  846. M_NL$4.B#_(OE7<-5B^R#[`165XM&"$`]`@!R#8M>!-'C]X?N!``"=`4SP.F,
  847. M`/]V"/]V!O]V!.B&`(/$!HE&_D`]`@!R#8M>!-'C]X?N!`"`=`6+1O[K8HM.
  848. M_HMV!AX'B_Z+WORL/!IT+3P-=`6JXO3K'.+P!E.X`0!0C4;]4/]V!.@[`(/$
  849. M!EL'_(I&_:H[^W4"ZYGK(%.X`0!0]]D;P%!1_W8$Z##\@\0(BUX$T>.!C^X$
  850. M``);*_N77UZ+Y5W#58OLM#^+7@2+3@B+5@;-(7("ZP10Z++[7<-5B^Q65_R+
  851. M?@0>!XO7,L"Y___RKHUU_XM^!KG___*N]]$K^8?W]\8!`'0"I$G1Z?.E<P&D
  852. MDE]>7<-5B^Q65XS8CL#\BWX&B_<RP+G___*N]]&+?@3SI(M&!%]>7<-5B^Q7
  853. MC-B.P(M^!#/`_+G___*ND??02%]=PU6+[+1!BU8$S2%R!#/`ZP10Z"7[7<-5
  854. MB^R+7@31X_>'[@0`"'03N`(`4#/`,])04O]V!.A1^X/$"+1`BUX$BTX(BU8&
  855. MS2%R#U"+7@31XX&/[@0`$%CK!%#HWOI=PUD.43/)ZQ99#E&Y`0#K#ED.4;D"
  856. M`.L&60Y1N0,`5597B^R+^8M&"HM6#(M>#HM.$`O)=0@+TG1I"]MT9??'`0!U
  857. M'`O2>0KWVO?8@]H`@\\,"\EY"O?9]]N#V0"#]P2+Z;D@`%<S_S/VT>#1TM'6
  858. MT=<[_7(+=P0[\W(%*_,;_4#BYUOWPP(`=`:+QHO7T>OWPP0`=`?WVO?8@]H`
  859. M7UY=R@@`]_/WQP(`=`&2,]+K[5L.4X#Y$',0B]K3Z-/Z]MF`P1#3XPO#RX#I
  860. M$)*9T_C+``````````````!65XOTBUP&@^L$<@X['HP%=`7H0@#K`^@#`%]>
  861. MPSD>B@5T(XMW`O8$`70&B3:,!>L@.S:*!70-B][H5`"+1P*CC`7K#8O>,\"C
  862. MB@6CC`6CC@53Z#GW6\/_#SL>B@5T&(MW`HL$J`%U#P,'B02+/P/[B74"B][K
  863. M`^@R`(L_`_N+!:@!=`'#`0>+]P/PB5P"B]^+?P8[WW0.B3Z.!8MW!(EU!(E\
  864. M!L/'!HX%``##BS:.!0OV=!"+?`:)7`:)702)?P:)=P3#B1Z.!8E?!(E?!L-6
  865. M5XOTBT0&"\!T4@4%`'(V)?[_/0@`<P.X"`"#/HH%`'0?BQZ.!0O;=`V+TSD'
  866. M<QJ+7P8[VG7UZ&8`ZR'HB@#K'.@<`.L7,\#K$XOP@\8(.3=SZ>AK__\'B\,%
  867. M!`!?7L-0,\!04.AY]EM;)0$`=`DSTE)0Z&OV6UM84#/;4U#H8/9;6SW__W04
  868. MB]B)'HH%B1Z,!5A`B0>#PP2+P\-;,\##4#/;4U#H.?9;6SW__W06B]BAC`6)
  869. M1P*)'HP%6$")!X/#!(O#PU@SP,,I!XOS`S>+_@/X0(D$B5P"B74"@\8$B\;#
  870. MB^Q34%%0Z!7_6PO`=!\>!_R+^(MV_HL,@\8$5H/I!='I\Z6)1O[H)OY;BU[^
  871. M@\0&PXO"@\((.]%W-8O1.QZ,!74/B0?_!P/#4U#HD/5;6^L>B_L#^(E=`BO0
  872. M*1>+]P/RB7P"0HD5B\N+W^@Y_HO9@\,$PU9758OLBUX(BT8*"\!T-PO;="V#
  873. MZP2+#TF+T(/"!8/B_H/Z"',#N@@`.\IR#'<%@\,$ZPCHA__K`^A1_XO#ZPM0
  874. MZ&?^ZP13Z)+]6UU?7L-6EI*%P'0"]^/C!9'WY@/!EO?C`]9>PP``CP:4!8\&
  875. ME@6/!I@%+HP>BB^)-IH%B3Z<!?R.!HX`OH``,N0FK$",Q8?6DXLVB`!&1KD!
  876. M`(`^D``#<A&.!HH`B_ZQ?S+`\J[C;H#Q?U"+P0/#0"7^_XO\*_AR7(OG!A\6
  877. M!U%)\Z0RP*J.W8?RA]F+PXO00^@9`'<'<D#H$@!W^3P@=`@\#70$/`EUZ#+`
  878. MZ^0+P'0'0JH*P'4!0X;@,L#YXQ6L22PB=`\$(CQ<=0>`/")U`JQ)"_;#Z=K1
  879. M60/*+HX>BB^)'I`%0P/;B_2+["OK<N:+Y8DND@7C#HEV`(/%`C:L"L#@^G3P
  880. M,\")1@`NCAZ*+XLVF@6+/IP%_S:8!?\VE@6AD`6C@@"AD@6CA`#_)I0%````
  881. M``)9(0```!",+P````````````!4=7)B;R!#*RL@+2!#;W!Y<FEG:'0@,3DY
  882. M,"!";W)L86YD($EN=&PN`$YU;&P@<&]I;G1E<B!A<W-I9VYM96YT#0I$:79I
  883. M9&4@97)R;W(-"D%B;F]R;6%L('!R;V=R86T@=&5R;6EN871I;VX-"@``````
  884. M````````````````````````````````````````````Q&O$:P``````````
  885. M`````%5S86=E.B`@8F]O>B![;'AT?2!A<F-H:79E6RYZ;V]=(%L@9FEL92`N
  886. M+BX@70H`4'5B;&EC(&1O;6%I;B!Z;V\@87)C:&EV92!E>'1R86-T;W(O;&ES
  887. M=&5R(&)Y(%)A:'5L($1H97-I"@!697)S:6]N(#(N,"`H,3DY,2\P-R\P-RD*
  888. M`&P@/2!L:7-T+"!X(#T@97AT<F%C="P@="`]('1E<W0*`%=!4DY)3D<Z("``
  889. M15)23U(Z("``1D%404PZ("``26YT97)N86P@97)R;W(*`%)A;B!O=70@;V8@
  890. M;65M;W)Y"@```````````````````````````````/\!_P/_!_\/_Q]3=&%C
  891. M:R!O=F5R9FQO=R!I;B!L>F0H*0H`3W5T<'5T(&5R<F]R(&EN(&QZ9"@I"@!)
  892. M;G!U="!E<G)O<B!I;B!L>F0Z<F1?9&-O9&4*`%=R:71E(&5R<F]R(&EN(&QZ
  893. M9#IW<E]D8VAA<@H`02!H:6=H97(@=F5R<VEO;B!O9B!/;WH@:7,@;F5E9&5D
  894. M('1O(&5X=')A8W0@`$@",#`P2F%N1F5B36%R07!R36%Y2G5N2G5L075G4V5P
  895. M3V-T3F]V1&5C`"YZ;V\`<F(`0V]U;&0@;F]T(&]P96X@``H`0F%D(&5N=')Y
  896. M(&EN(&%R8VAI=F4*`$QE;F=T:"`@("!#1B`@4VEZ92!.;W<@($1A=&4@("`@
  897. M("!4:6UE"@`M+2TM+2TM+2`@+2TM("TM+2TM+2TM("`M+2TM+2TM+2T@+2TM
  898. M+2TM+2T*`"4@`"`@`"``(``@`#H`.@`@(``*``H`<F(`3W9E<G=R:71E(``@
  899. M*%EE<R].;R]!;&PI/R``4VMI<'!I;F<@``H`=V(`0V]U;&0@;F]T(&]P96X@
  900. M`"!F;W(@;W5T<'5T+@H`(``*`$DO3R!E<G)O<B!W<FET:6YG(``*`#PM+0=7
  901. M05).24Y'.B`@0F%D($-20RX*``H``&1I<VL@9G5L;`!"860@9&5C;V1E('1A
  902. M8FQE"@```$<91QE'&0``"0(`````````````K@,```H"`0```````````+X#
  903. M```"`@(```````````#.`P``0P(#````````````W@,``$("!```````````
  904. M`.X#`````/\```````````#^`P````#_````````````#@0`````_P``````
  905. M`````!X$`````/\````````````N!`````#_````````````/@0`````_P``
  906. M`````````$X$`````/\```````````!>!`````#_````````````;@0`````
  907. M_P```````````'X$`````/\```````````".!`````#_````````````G@0`
  908. M````_P```````````*X$`````/\```````````"^!`````#_````````````
  909. MS@0`````_P```````````-X$`2`"(`(@!*`"H/______________________
  910. M_________________P!`__\```T````````05$U0`"XD)"0``````!,"`@0%
  911. M!@@("!05!1/_%@41`O________________\%!?____________________\/
  912. M_R,"_P______$___`@(%#P+___\3__________\C_____R/_$_\`````````
  913. $``````__
  914. `
  915. end
  916. ---CUT HERE--- End of CBIP Starter's Kit
  917.  
  918. =======================================================================
  919. Brian O'Neill - Systems Manager, Computer Science, University of Lowell
  920. Internet: oneill@ulowell.edu                 (508) 934-3645 
  921. UUCP: harvard!ulowell!oneill
  922.